import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document, Types } from 'mongoose';
import { Question } from '../questions/question.schema';
export type ExamDocument = Exam & Document;

// src/schemas/exams/exam.schema.ts
@Schema({ timestamps: true })
export class Exam extends Document {
  @Prop({ required: true })
  title: string;

  @Prop({ 
    enum: ['1', '2', '3'],// 1专项练习 2全真模考 3全国模考大赛
    required: true
  })
  type: string;
  @Prop({ 
    enum: ['admin', 'police', 'essay'],// 1 行政职业能力测试 2公安专业知识 3申论
    required: true
  })
  detailType: string;

  @Prop([{
    name: { type: String, required: true }, // 部分名称（如"行政职业能力测试"）
    subType: {
      type: String,
      enum: [
        'knowledge', 
        'language', 
        'common', 
        'numerical', 
        'logical', 
        'analysis'
      ],
      default: 'knowledge' // 默认值
    }, // 部分类型（如"知识"）
    duration: { type: Number, required: true }, // 作答时间（分钟）
    minDuration: { type: Number, default: 0 }, // 最短作答时间（如第一部分需8分钟）
    questions: [{
      type: Types.ObjectId,
      ref: 'Question'
    }], // 试题
    questionGroups: [{
      type: Types.ObjectId,
      ref: 'ExamQuestion'
    }], // 试题
  }])
  sections: Record<string, any>[];
}

export const ExamSchema = SchemaFactory.createForClass(Exam);
